home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio / Ham Radio CD-ROM (Emerald Software) (1995).ISO / misc / utilitys / morse.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  3.6 KB  |  103 lines

  1. 5  'SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDVariable-speed Morse code
  2. 6  'generator programmed by Dick Conklin
  3. 7  'THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN
  4. 10  WIDTH 80:KEY OFF:KEY 1,"":KEY 3,"":     KEY 4,"":DEF SEG:POKE 106,0:CLS:S=0.5:F=1000
  5. 12  KEY 2,"CQ CQ de W2GRH "
  6. 15  LOCATE 1,9:MSG$="Variable Speed and Pitch":GOSUB 500
  7. 20  CLS:LOCATE 7,15:PRINT                   "Select Code Speed:"
  8. 25  LOCATE 8,15:PRINT "(words per minute)"
  9. 30  LOCATE 12,15:PRINT "5    Slow"
  10. 40  LOCATE 14,15:PRINT "13"
  11. 50  LOCATE 16,15:PRINT "25"
  12. 60  LOCATE 18,15:PRINT "40   Fast"
  13. 70  LOCATE 21,25:PRINT "(Press ENTER)"
  14. 80  LOCATE 21,15:INPUT "",W:IF W=0 THEN W=20
  15. 82  S=21/W
  16. 85  CLS:INPUT "Do you want to create a new file";Q$:IF Q$="y" OR Q$="Y" THEN GOSUB 3200
  17. 87  INPUT "Do you want to convert a file into code";Q$:IF Q$="y" OR Q$="Y" THEN GOSUB 3000:GOTO 20
  18. 90  CLS:LOCATE 25,1:PRINT "F1=Restart  F3=Lower Tone, F4=Higher  ";:LOCATE 1,1:PRINT "Text typed below sent at ";W;" WPM:":LOCATE 3,1,1
  19. 100  I$=INKEY$:IF I$="" THEN 100
  20. 110  GOSUB 1000
  21. 120  GOTO 100
  22. 499  'THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN
  23. 500  'Message Sender
  24. 510  FOR I=1 TO LEN(MSG$)
  25. 520  I$=MID$(MSG$,I,1):GOSUB 1000
  26. 530  NEXT I
  27. 540  RETURN 'to Sender
  28. 999  'THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN
  29. 1000  'Code Generator
  30. 1005  C$=CHR$(ASC(I$) OR 32)
  31. 1010  IF C$="a" THEN B$=".-":GOTO 2000
  32. 1020  IF C$="b" THEN B$="-...":GOTO 2000
  33. 1030  IF C$="c" THEN B$="-.-.":GOTO 2000
  34. 1040  IF C$="d" THEN B$="-..":GOTO 2000
  35. 1050  IF C$="e" THEN B$=".":GOTO 2000
  36. 1060  IF C$="f" THEN B$="..-.":GOTO 2000
  37. 1070  IF C$="g" THEN B$="--.":GOTO 2000
  38. 1080  IF C$="h" THEN B$="....":GOTO 2000
  39. 1090  IF C$="i" THEN B$="..":GOTO 2000
  40. 1100  IF C$="j" THEN B$=".---":GOTO 2000
  41. 1110  IF C$="k" THEN B$="-.-":GOTO 2000
  42. 1120  IF C$="l" THEN B$=".-..":GOTO 2000
  43. 1130  IF C$="m" THEN B$="--":GOTO 2000
  44. 1140  IF C$="n" THEN B$="-.":GOTO 2000
  45. 1150  IF C$="o" THEN B$="---":GOTO 2000
  46. 1160  IF C$="p" THEN B$=".--.":GOTO 2000
  47. 1170  IF C$="q" THEN B$="--.-":GOTO 2000
  48. 1180  IF C$="r" THEN B$=".-.":GOTO 2000
  49. 1190  IF C$="s" THEN B$="...":GOTO 2000
  50. 1200  IF C$="t" THEN B$="-":GOTO 2000
  51. 1210  IF C$="u" THEN B$="..-":GOTO 2000
  52. 1220  IF C$="v" THEN B$="...-":GOTO 2000
  53. 1230  IF C$="w" THEN B$=".--":GOTO 2000
  54. 1240  IF C$="x" THEN B$="-..-":GOTO 2000
  55. 1250  IF C$="y" THEN B$="-.--":GOTO 2000
  56. 1260  IF C$="z" THEN B$="--..":GOTO 2000
  57. 1270  IF I$="1" THEN B$=".----":GOTO 2000
  58. 1280  IF I$="2" THEN B$="..---":GOTO 2000
  59. 1290  IF I$="3" THEN B$="...--":GOTO 2000
  60. 1300  IF I$="4" THEN B$="....-":GOTO 2000
  61. 1310  IF I$="5" THEN B$=".....":GOTO 2000
  62. 1320  IF I$="6" THEN B$="-....":GOTO 2000
  63. 1330  IF I$="7" THEN B$="--...":GOTO 2000
  64. 1340  IF I$="8" THEN B$="---..":GOTO 2000
  65. 1350  IF I$="9" THEN B$="----.":GOTO 2000
  66. 1360  IF I$="0" THEN B$="-----":GOTO 2000
  67. 1370  IF I$="." THEN B$=".-.-.-":GOTO 2000
  68. 1380  IF I$="?" THEN B$="..--..":GOTO 2000
  69. 1390  IF I$="," THEN B$="--..--":GOTO 2000
  70. 1400  IF I$="-" THEN B$="-...-":GOTO 2000
  71. 1410  IF I$="/" THEN B$="-..-.":GOTO 2000
  72. 1420  IF I$=" " THEN B$=" ":GOTO 2000
  73. 1500  FK=MID$(I$,1,1)=CHR$(0) :F1=MID$(I$,2,1)=CHR$(59) : F3=MID$(I$,2,1)=CHR$(61) : F4=MID$(I$,2,1)=CHR$(62)
  74. 1510  IF FK AND F3 THEN F=F-10 ELSE IF FK AND F4 THEN F=F+10 ELSE IF FK AND F1 THEN 20
  75. 1520  IF I$=CHR$(8) THEN B$="........": LOCATE ,POS(0)-1:PRINT " ";: LOCATE ,POS(0)-1:C$="":GOTO 2000
  76. 1530  IF I$=":" THEN B$="---...":GOTO 2000
  77. 1540  IF I$=";" THEN B$="-.-.-.": GOTO 2000
  78. 1550  IF I$="(" OR C$=")" THEN  B$="-.--.-":GOTO 2000
  79. 1560  IF I$="+" OR I$="&" THEN B$=". ...":GOTO 2000
  80. 1990  B$=""
  81. 2000  PRINT I$; 'Display while sending
  82. 2010  FOR C=1 TO LEN(B$)
  83. 2020  IF MID$(B$,C,1)="." THEN MOTOR 1:SOUND F,S:SOUND 32767,0.1 ELSE IF MID$(B$,C,1)="-" THEN MOTOR 1:SOUND F,S:SOUND 32767,S:SOUND 32767,S:SOUND 32767,0.1  ELSE SOUND 32767,S:SOUND 32767,0.1
  84. 2025  MOTOR 0:SOUND 32767,S:SOUND 32767,0.1  'Space after Dot/Dash
  85. 2030  NEXT C 'Get the next Dot or Dash
  86. 2035  SOUND 32767,S*1.5:SOUND 32767,0.1   'Space after letter
  87. 2040  RETURN 'Get the next letter
  88. 3000  'Convert text file into code
  89. 3005  ON ERROR GOTO 3010:PRINT "Current files:  ";:FILES "*.   ":PRINT
  90. 3010  INPUT "Enter file name:  ",CODEFILE$
  91. 3020  OPEN CODEFILE$+".   " FOR INPUT AS #1
  92. 3030  CLS:LOCATE 25,1:PRINT "Reading from file ";CODEFILE$:LOCATE 1,1:PRINT "Text typed below sent at ";W;" WPM":LOCATE 3,1
  93. 3040  IF EOF(1) THEN CLOSE:RETURN
  94. 3050  LINE INPUT #1,MSG$:GOSUB 500:PRINT:GOTO 3040
  95. 3200  'Enter and store text
  96. 3205  ON ERROR GOTO 3210:PRINT "Current files:  ";:FILES "*.   ":PRINT
  97. 3210  INPUT "Enter file name: ",CODEFILE$:OPEN CODEFILE$+".   " FOR OUTPUT AS #1
  98. 3215  CLS:LOCATE 25,1:PRINT "Enter  ";CHR$(17);"SOUNDSOUND'  when done":LOCATE 1,1:PRINT "Enter text to be stored below:"
  99. 3220  LINE INPUT TEXT$
  100. 3230  IF TEXT$="" THEN CLOSE:RETURN
  101. 3240  PRINT #1,TEXT$:GOTO 3220
  102. 3250  END
  103.